class_docstr: A ParallelBackend which will use a multiprocessing.Pool.
  
  Will introduce some communication and memory overhead when exchanging
  input and output data with the with the worker Python processes.
  However, does not suffer from the Python Global Interpreter Lock.
class_docstr_tok: ["A","ParallelBackend","which","will","use","a","multiprocessing.Pool",".","Will","introduce","some","communication","and","memory","overhead","when","exchanging","input","and","output","data","with","the","with","the","worker","Python","processes",".","However",",","does","not","suffer","from","the","Python","Global","Interpreter","Lock","."]
docstr: Determine the number of jobs which are going to run in parallel.
  
  This also checks if we are attempting to create a nested parallel
  loop.
code: def effective_n_jobs(self, n_jobs):
      """Determine the number of jobs which are going to run in parallel.
  
      This also checks if we are attempting to create a nested parallel
      loop.
      """
      if mp is None:
          return 1
  
      if mp.current_process().daemon:
          # Daemonic processes cannot have children
          if n_jobs != 1:
              warnings.warn(
                  "Multiprocessing-backed parallel loops cannot be nested,"
                  " setting n_jobs=1",
                  stacklevel=3,
              )
          return 1
  
      elif threading.current_thread().name != "MainThread":
          # Prevent posix fork inside in non-main posix threads
          warnings.warn(
              "Multiprocessing backed parallel loops cannot be nested"
              " below threads, setting n_jobs=1",
              stacklevel=3,
          )
          return 1
  
      return super(MultiprocessingBackend, self).effective_n_jobs(
          n_jobs
      )
  
imports: import gc
  import os
  import sys
  import warnings
  import threading
  from abc import ABCMeta, abstractmethod
  from .format_stack import format_exc
  from .my_exceptions import WorkerInterrupt, TransportableException
  from ._multiprocessing_helpers import mp
  from ._compat import with_metaclass
label_desc: Use image node_id 1 for calling the MultiprocessingBackend obj's underlying member method code with example usage: obj.effective_n_jobs(n_jobs) and returns: super, int, int, int