message: fix crash after training finishes
  Fix:
  After the coordinator completed all the rounds, it will clear all the
  clients, and reject any rendez-vous request. There is no need to emit
  a "remove" event at this point, since all the clients will be unknown
  anyway.
diff: @@ -141,7 +141,6 @@ impl Protocol {
  pub fn rendez_vous(&mut self, id: ClientId, client_state: ClientState) -> RendezVousResponse {
  info!("rendez vous: {}({})", id, client_state);
  if self.is_training_complete {
  - self.emit_event(Event::Remove(id));
  return RendezVousResponse::Reject;
  }
  let response = match client_state {
  