'Send a request to the server.
The response will be a dictionary the \'request_id\' and the
\'func_name\' as well as a \'result\' field with the object returned by
the function call or or an \'error\' field with a traceback.'

def request(self, func_name, *args, **kwargs):

    if (not self.is_initialized):
        return
    request_id = uuid.uuid4().hex
    request = dict(func_name=func_name, args=args, kwargs=kwargs, request_id=request_id)
    self._send(request)
    return request_id
