code: def start_server(
          server_address: str = None, *, backend: Callable = multiprocessing.Process
  ) -> Tuple[multiprocessing.Process, str]:
      
      recv_conn, send_conn = multiprocessing.Pipe()
  
      server_process = backend(target=main, args=[server_address, send_conn])
      server_process.start()
  
      try:
          with recv_conn:
              server_meta: ServerMeta = serializer.loads(recv_conn.recv_bytes())
      except zmq.ZMQError as e:
          if e.errno == 98:
              raise ConnectionError(
                  "Encountered - %s. Perhaps the server is already running?" % repr(e)
              )
          if e.errno == 22:
              raise ValueError(
                  "Encountered - %s. `server_address` must be a string containing a valid endpoint."
                  % repr(e)
              )
          raise
  
      return server_process, server_meta.state_router
docs: Start a new zproc server.
  
      :param server_address:
          .. include:: /api/snippets/server_address.rst
      :param backend:
          .. include:: /api/snippets/backend.rst
  
      :return: `
          A `tuple``,
          containing a :py:class:`multiprocessing.Process` object for server and the server address.