In употребляется, когда очень важен факт, что ты находишься в самом здании, а at употребляется, когда не важно, что ты внутри, а важна атмосфера, занятия там и тд.
Пример: He is in prison - он в тюрьме, в самом здании, он заключенный
She works at prison - она работает в тюрьме, но не важно, что она в самом здании работает, а в тюрьме, как таковой.