You have to generate the keys before selecting relays, as you use the keys to sign the relay list kind 10002. I mean, you could do it the other-way-around, in the client, but then you'd only have the list in the cache. If they cleared the cache, they'd lose their relay settings.
We have an onboarding wizard that goes step-by-step, for the user lists, but the client needs to have good default selections. Otherwise, everyone really does end up with a relay list full of big aggregators, which is pointless.