code: def schedule_job(self, job):
          
          l = _reraise_with_traceback(job.get_lambda_to_execute())
  
          future = self.workers.submit(l, update_progress_func=self.update_progress, cancel_job_func=self._check_for_cancel)
  
          # assign the futures to a dict, mapping them to a job
          self.job_future_mapping[future] = job
          self.future_job_mapping[job.job_id] = future
  
          # callback for when the future is now!
          future.add_done_callback(self.handle_finished_future)
          # add the job to our cancel notifications data structure, with False at first
          self.cancel_notifications[job.job_id] = False
  
          return future
docs: schedule a job to the type of workers spawned by self.start_workers.
  
  
          :param job: the job to schedule for running.
          :return: