code: def start_scheduler(self):
          
          t = InfiniteLoopThread(
              func=self.schedule_next_job,
              thread_name="SCHEDULER",
              wait_between_runs=0.5)
          t.start()
          return t
docs: Start the scheduler thread. This thread reads the queue of jobs to be
          scheduled and sends them to the workers.
          Returns: None