Is there a way to manually trigger an asset transform before calling getUrl()? I have a site where I serve quite the amount of images which are saved on Google Cloud Storage. I have set generateTransformsBeforePageLoad to true in my general config because I'm caching the output for Fastly (based on Varnish). The downside is that on first request it's awfully slow and at one point even returns a 503 error.  

Is there a way that assets can be transformed before getUrl() is being called? Other solutions are more than welcome.
You could use my Preparse Field plugin to generate transforms when an entry (or any other element) is saved. 

Create a preparse field and create some twig that makes the same transforms that you do in your template. Don't care about the output, the only thing you want it to do is generate the images on save. Assuming you attach the field to an entry, and you have a field named myImageField, the code could look something like this:

{% if entry.myImageField | length %}
  {% for image in entry.myImageField %}
    {{ image.getUrl({ width: 1600 })
    {{ image.getUrl({ width: 1200 })
    {{ image.getUrl({ width: 800 })
    {{ image.getUrl({ width: 400 })
  {% endfor %}
{% endif %}


When you save the entry, this code will run, and create any new image transforms. When the entry is displayed in the front-end, the image transforms will already have been created.

Beware that this will not actually increase the speed of the transforms, only shift the time it takes from the front-end user over to the admin. But I find that this is more acceptable in most of my use-cases.