Currently, the AM receives the key as part of registration. This introduces a race where a client can connect to the AM when the AM has not received the key.
1) AM needs to start the client listening service in order to get host:port and send it to the RM as part of registration
2) RM gets the port info in register() and transitions the app to RUNNING. Responds back with client secret to AM.
3) User asks RM for client token. Gets it and pings the AM. AM hasn't received client secret from RM and so RPC itself rejects the request.