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: Build a process or thread pool and return the number of workers
code: def configure(self, n_jobs=1, parallel=None, **backend_args):
      """Build a process or thread pool and return the number of workers"""
      n_jobs = self.effective_n_jobs(n_jobs)
      if n_jobs == 1:
          raise FallbackToBackend(SequentialBackend())
  
      already_forked = int(
          os.environ.get(self.JOBLIB_SPAWNED_PROCESS, 0)
      )
      if already_forked:
          raise ImportError(
              "[joblib] Attempting to do parallel computing "
              "without protecting your import on a system that does "
              "not support forking. To use parallel-computing in a "
              'script, you must protect your main loop using "if '
              "__name__ == '__main__'"
              '". Please see the joblib documentation on Parallel '
              "for more information"
          )
      # Set an environment variable to avoid infinite loops
      os.environ[self.JOBLIB_SPAWNED_PROCESS] = "1"
  
      # Make sure to free as much memory as possible before forking
      gc.collect()
      self._pool = MemmapingPool(n_jobs, **backend_args)
      self.parallel = parallel
      return 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 2 for calling the MultiprocessingBackend obj's underlying member method code with example usage: obj.configure(n_jobs, parallel) and returns: n_jobs