code: def start(self, exit_on_stop=True, secondary_wait=0, reconnect=False):
          
          if self.started:
              raise RuntimeError("DistributedEvaluator already started!")
          self.started = True
          if self.mode == MODE_PRIMARY:
              self._start_primary()
          elif self.mode == MODE_SECONDARY:
              time.sleep(secondary_wait)
              self._start_secondary()
              self._secondary_loop(reconnect=reconnect)
              if exit_on_stop:
                  sys.exit(0)
          else:
              raise ValueError("Invalid mode {!r}!".format(self.mode))
docs: If the DistributedEvaluator is in primary mode, starts the manager
          process and returns. In this case, the ``exit_on_stop`` argument will
          be ignored.
          If the DistributedEvaluator is in secondary mode, it connects to the manager
          and waits for tasks.
          If in secondary mode and ``exit_on_stop`` is True, sys.exit() will be called
          when the connection is lost.
          ``secondary_wait`` specifies the time (in seconds) to sleep before actually
          starting when in secondary mode.
          If 'reconnect' is True, the secondary nodes will try to reconnect when
          the connection is lost. In this case, sys.exit() will only be called
          when 'exit_on_stop' is True and the primary node send a forced shutdown
          command.