code: def effective_n_jobs(self, n_jobs):
      effective_n_jobs = sum(self.client.ncores().values())
      if effective_n_jobs != 0 or not self.wait_for_workers_timeout:
          return effective_n_jobs
  
      # If there is no worker, schedule a probe task to wait for the workers
      # to come up and be available. If the dask cluster is in adaptive mode
      # task might cause the cluster to provision some workers.
      try:
          self.client.submit(_joblib_probe_task).result(
              timeout=self.wait_for_workers_timeout
          )
      except _TimeoutError as e:
          error_msg = (
              "DaskDistributedBackend has no worker after {} seconds. "
              "Make sure that workers are started and can properly connect "
              "to the scheduler and increase the joblib/dask connection "
              "timeout with:\n\n"
              "parallel_config(backend='dask', wait_for_workers_timeout={})"
          ).format(
              self.wait_for_workers_timeout,
              max(10, 2 * self.wait_for_workers_timeout),
          )
          raise TimeoutError(error_msg) from e
      return sum(self.client.ncores().values())
  
imports: from __future__ import print_function, division, absolute_import
  import asyncio
  import concurrent.futures
  import contextlib
  import time
  from uuid import uuid4
  import weakref
  from .parallel import parallel_config
  from .parallel import AutoBatchingMixin, ParallelBackendBase
label_desc: Use image node_id 7 for calling the DaskDistributedBackend obj's underlying member method code with example usage: obj.effective_n_jobs(n_jobs) and returns: sum, effective_n_jobs