How to generate two different keys out of a single password?
My problem with doing that is that if I use Scrypt for both, auth and key derivation, I could be exposing the key to the server (during authentication).


If you use two hashes then one failing breaks whole system. Using one reduces chance of being broken than using two.


  I'm pretty sure that to hash the password for authentication purposes I want to use Scrypt.


Scrypt isn't a hash, it is PBKDF. PBKDF2 is also a PBKDF, not a hash.


  How should I resolve that problem other than by using two different algorithms?


First of all, don't use two different PBKDFs. Then you have two different attack vectors, and you spend less time per PBKDF than with one strong PBKDF.

You should derive master key first, using some PBKDF (I would recommend Argon2, making sure strong settings are used and using salt). After master key is derived you should use KDF (Key Derivation Function) to do exactly what you ask for: Make two keys from one. Then you have K1 and K2. K1 can be used for encryption and K2 can be sent to server which also should hash it(PBKDF is useless there). 

You should also consider if server should store salt (+you can access your data after HDD fail; -Server can try to break your password).