3) Assuming you're importing data (not live connection): Select your timedimension and simply load it all.
4) Edit Queries and filter the year to this year for example.
5) On your right in Query settings under Applied Steps - click on the gear sign right to "Added Item" and simply add the dimensions you need and Load them each time. Filter as much as you can each time as well.
For me this works better than loading all in one which either takes way too long or doesnt work at all.
This is something that we need to be able to pre-filter before loading IMO.
Another thing you need to take into consideration is that "There is a 250 MB limit per dataset that is imported into Power BI". So as other community memebers figured out, you need to define MDX or DAX query to set the imported dataset size is not bigger than 250 MB.
This is a bit counterintuitive, but in order to reduce the number of rows/columns to be returned from your Server/cube you have to write the filter-steps in M. In many cases the query will fold back to the server (this is the technical term for letting the server to the pre-selections).
In addition to that, M is partially lazy evaluating, so even in "normal" queries, the commands wouldn't be executed as you read the code but once they are needed for the result (and the engine thinks it's best :-) ).
However, there are limitations that you can read here.
If you want to pass filter-tables to your SSAS model, you should have a look here (also including the syntax on how to pass simple filter arguments into your MDX-statements).
I've just seen your comment on the OP's issue and thought this looked like a great solution, however when I try this the filters are removed when adding fields so it doesn't make any impact. The reason being is that when clicking the 'cog' you're effectively going back a step to the pre-filter view.