Locks in SQL Server are only held if there is an active transaction. You have to commit the transaction before you call the external BCP. Otherwise you will run into this Deadlock.
Incidentally this Deadlock cannot be detected by SQL Server, so if it happens, you will be stuck in it forever.