There's another way that involves terminal-fu. If you put & after your command, like “indicator-fish &”, it will run in the background. The shell tells you the job number and the process ID, then you can do more stuff. The process ID is something global to the system, the job number is specific to the shell. You can get a list of running jobs with the “jobs” command.
The process is still killed when you close the terminal. To change that, use “disown %1”. (%1 refers to job number 1).
You can also run a command without the & and put it in the background with Ctrl+Z. Ctrl+Z also stops the process, though, so you need to send it a signal to resume using “kill -s CONT %1”. (It's counter-intuitive, but kill is used to send any signal to a process; not just KILL).
There's a Wikipedia article that might explain this better than I can, but of course no need to read it unless you're interested. I'm just rambling
There are a few ways to do this.
The easiest way is to run indicator-fish from the Alt+F2 prompt, which runs it under init instead of your terminal's shell. You get the same thing if you add it to your Startup Applications or make a launcher for it.
Send an Instant Message to theophiles Using...
First Cup of Ubuntu