code: def start_server(self):
          
          self.server = tf.train.Server(
              server_or_cluster_def=self.distributed_spec["cluster_spec"],
              job_name=self.distributed_spec["job"],
              task_index=self.distributed_spec["task_index"],
              protocol=self.distributed_spec.get("protocol"),
              config=self.distributed_spec.get("session_config"),
              start=True
          )
          if self.distributed_spec["job"] == "ps":
              self.server.join()
              # This is unreachable?
              quit()
docs: Creates and stores a tf server (and optionally joins it if we are a parameter-server).
          Only relevant, if we are running in distributed mode.