Alejandro,
As you've discovered, you can't get an API Key without an application being registered, and you can't register an application without having at least 1 API associated with it. The only workaround I can think of would be to have a "temporary" API that you use purely as a placeholder to use for application registration, just to get the API Key. Then, whenever the "real" APIs are deployed, you would then be able to edit the applications and associate all the "real" APIs that are required, and remove the association with the "temporary" API. This will allow you to receive an API Key ahead of time, and then have it associated with the intended APIs when the time arises.
The "temporary" API would still need to be a valid service on the Gateway and Portal for it to be visible and usable for this purpose. However, the service can simply have a policy with a return template response, so that it's not very useful if it's actually consumed.
Alternatively, if you'd prefer this to be possible without this workaround, you can post an idea in the communities to request this functionality.
Regards,
Azad