In Debian/Ubuntu, when logging from gdm your ~/.bash_profile or even ~/.bash_rc are loaded, preventing you to set environment variables for all your session. The reason is that gdm starts /usr/bin/x-session-manager directly.
There are many ways to get ~/.bash_profile loaded. Many of which are wrong.
I found that a very simple way to loading ~/.bash_profile when starting X is to write the following ~/.xsession script:
#!/bin/bash --login exec /usr/bin/x-session-manager